Recently, communication protocols have developed for allowing a computing device to control and communicate with media devices such as digital cameras. One such protocol, ISO 157540 Picture Transfer Protocol (PTP), incorporated into products of the Microsoft Corporation of Redmond, Wash., can be used in connection with transferring images from imaging devices, such as cameras, to personal computing devices. This protocol defines how the digital still camera can communicate with a personal computing device.
Referring to FIG. 1, the PTP protocol is an asymmetric control and data transfer protocol, somewhat like a master/slave protocol. However, in PTP parlance one refers to the devices engaged in a picture transfer as the Initiator 310 and Responder 230, rather than the Master and Slave. The Initiator 310 device establishes and subsequently manages a control connection while the Responder is defined as the device that responds to operation requests such as an “OpenSession” request.
Devices, in the PTP protocol model, can be Initiators, Responders, or both. For instance, a PC may be configured only as an Initiator device while a USB camera may be only a Responder. Similarly, a wireless camera, that opens a connection to a wireless PTP printer and pushes pictures for print, may be only an Initiator while the corresponding printer may be only a Responder. It is recognized by the inventors of the present invention that a digital camera that can connect to other digital cameras and is able to both initiate and receive a PTP session will have to be capable of behaving both as Initiator and Responder.
Usually, the Initiator will have a form of graphical user interface application 240 so that a user can see/browse thumbnails, select and chose an appropriate control action, and so on. The Initiator device implements the device enumeration and transport mapping (in the case that multiple, PTP-compliant transports are supported) in a transport specific manner. Typically, a Responder will not have a graphical user interface or multiple transport support.
In order for two PTP devices to exchange information about pictures or metadata, a PTP session may be established. A session is a logical connection between PTP devices, over which object identifiers, or ObjectHandles, and storage media identifiers, or StorageIDs, are persistent. A session is considered open after the Responder returns a valid response to an OpenSession operation requested by the Initiator. A session is closed after a CloseSession operation is completed or the transport closes the communication channel, whichever occurs first.
The only operation or data traffic allowed outside the session is a GetDeviceInfo operation and a DeviceInfo dataset. A device can issue/accept a GetDeviceInfo operation outside a session. A session may be utilized to transfer descriptors (e.g., StorageInfo, ObjectInfo), images or other objects between devices. Any data communicated between devices is considered valid unless a specific event occurs specifying otherwise.
PTP is actually a transport independent protocol. In its original embodiment it was designed and intended for use over a Universal Serial Bus (USB) transport—“legacy PTP”. Alternative transports can be implemented over local area networks. Examples include PTP over Bluetooth and PTP over IP networks 210 (PTP/IP) as illustrated in FIG. 1.
As described in the PTP/IP Draft Specification which can be found at http://www.fotonation.com, hereby incorporated by reference, a PTP/IP device is uniquely recognized using a unique device identifier called GUID. Two PTP/IP devices can communicate with each other if their GUIDs are known to each other. In this way, application software running on such devices can implement restriction connection policies. Both the Initiator and Responder can maintain a list of GUIDs for devices to which they may connect.
There are multiple ways that the GUIDs of peer devices can be exchanged, e.g., storage media based methods or networking based methods.
Referring to FIG. 1, In PTP/IP, communication between two image devices happens via two TCP connections (logical data channels) 211,212. The first connection 211 is dedicated to Operation Request, Response and Data transaction packets as well as to carry PTP/IP specific packets (i.e. Command/Data Connection). The second TCP connection 212 should be used exclusively for Event transaction packets (i.e., Event Connection). Event packets are transported separately from Operation and Data transaction packets because of their asynchronous nature.
Each of the Command/Data TCP and the Event connection are established by the image Initiator device and identified by the local and remote IP addresses and port numbers. The Responder's IP address and port number are provided through the device discovery mechanism or manually configured using a user interface on the Initiator device.
Further details are given in (i) “Digital camera connectivity solutions using the picture transfer protocol (PTP)” to Bigioi, P.; Susanu, G.; Corcoran, P.; Mocanu, I and published in IEEE Transactions on Consumer Electronics, volume 48, issue 3, p 417-427, August 2002; and (ii) PTP/ISO-15740 PTP Specification (see http://www.i3a.org/downloads it10.html), which are hereby incorporated by reference. Note that reference (i) above also includes a detailed description of a PTP/Bluetooth transport.
The PictBridge Standard (CIPA DC-001) from the Camera & Imaging Products Association (CIPA), and published in early 2003, provides for direct connection between image input devices, such as digital cameras, and image output devices, such as printers. It achieves this by standardizing the applications services for these devices. In particular it focuses on the provision of direct print services from a camera to a printer, without the need for a USB master device such as a desktop PC.
CIPA DC-001 advantage of the commonality of digital camera interfaces and data storage formats to provide an effective solution for connectivity between a single camera and a single printer. Key services offered by DC-001 compliant devices include: (i) direct printing one or more selected images on the camera UI; (ii) support for “Direct Print Ordering Format” (DPOF) based print services; (iii) index print of all images in camera; (iv) display of printer status information on the camera UI; (v) print job control functions—cancel, pause, restart and (vi) additional features which require advanced print setup, such as multiple print copies, image crop prior to print, specify image print size, etc.
CIPA DC-001 uses PTP to provide low-level functions and services which are used to support the higher-level functionality of PictBridge.
Most digital photography devices on the market today support legacy PTP in order to allow interconnection of media devices such as cameras and printers without the need for an intermediate desktop PC. Printers which are designed for digital photography will also support PictBridge which allows a PTP camera to directly select and print images. The physical link for such PTP enabled devices is usually a wired connection between the PTP/Pictbridge devices and this is typically a USB connection.
Wireless printers are already available in the market and next-generation cameras and printers will support connection over wireless networks using PTP/IP. This will provide users with a greatly enhanced experience creating photographic prints without physically connecting a camera to a printer.
Unfortunately the owners of legacy PTP devices will be unable to benefit because legacy cameras and printers do not (i) provide a physical network connection, (ii) their legacy PTP software does not support or understand TCP/IP networking and/or (iii) no support is provided in the PTP protocol for device discovery, nor for supporting the presence of multiple devices as would typically exist on a TCP/IP network.